home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 8: LINUX Games / Linux Cubed Series 8 - LINUX Games.iso / games / x11 / rpg / crossfir.92 / crossfir / crossfire-0.92.5 / doc / Multigod.doc < prev    next >
Text File  |  1996-07-24  |  10KB  |  263 lines

  1.  
  2.  
  3.  
  4.     This document is a brief description of the MULTIGOD hack. 
  5.  
  6.     --------------
  7.     Introduction -
  8.     --------------
  9.  
  10.     The intention of this code is to enhance the enjoy-ability and 
  11.     playability of clerical characters in the new skills/exp scheme.
  12.  
  13.     This is done by giving players gods to worship who in turn effect 
  14.     clerical magic and powers. Included in this patch are several new 
  15.     spells which (hopefully) will allow the priest characters a better 
  16.     chance to gain xp at higher levels. Notably, the "holy orb" and 
  17.     "holy word" spells have been revamped.
  18.  
  19.     When MULTIPLE_GODS flag is defined in include/config.h, this 
  20.     code is enabled. This code (described below) encompasses 3 
  21.     main parts: an array of gods that players/NPCs may worship, 
  22.     new clerical spells which rely on the worshiped god's attrib-
  23.     utes in Gods[] array and, altars/praying--the interface between 
  24.     a worshiper and their god.
  25.  
  26.                         b.t.
  27.                         thomas@astro.psu.edu
  28.  
  29.     ---------
  30.     Outline -
  31.     ---------
  32.  
  33.     1. Instructions to Players - how to use this code.
  34.  
  35.     2. Description of code -
  36.         a. Gods[] array.
  37.         b. New spells.
  38.         c. About altars/praying.
  39.  
  40.     3. TODO/Idea list
  41.  
  42.  
  43.     ------------------------- 
  44.     Instructions to Players - 
  45.     ------------------------- 
  46.  
  47.     This new code allows the player-priest to adopt a God for 
  48.     worship. In turn the worship of this god will effect how a 
  49.     cleric casts prayers and gains xp. For example, if you worship 
  50.     the god of the undead, dont expect to be able to gain cleric 
  51.     xp for killing undead! But you might gain, as a priest of the 
  52.     undead, greater powers of commanding undead, and xp for killing 
  53.     living creatures. Such priest, because their god's domain is the 
  54.     dead, probably wont be that effective at healing either. 
  55.  
  56.     To use the code is simple. Stand your character over an 
  57.     aligned altar (it will be named like "altar of <godname>") and 
  58.     use your "praying" skill.  More than likely you will become a 
  59.     worshiper of that god. It is possible to change worship by praying 
  60.     over another god's altar, but as you progress in clerical xp, this 
  61.     will become more and more difficult. Also, each time you pray over 
  62.     another god's altar you can lose experience!-- so don't do this 
  63.     with out consideration and need!
  64.  
  65.     
  66.     --------------------- 
  67.     Description of code -
  68.     --------------------- 
  69.  
  70.     Hopefully this code is flexible, and easy to configure. Part of the
  71.     reason for creating this code was to allow server maintainers to 
  72.     develop their own "mythos". From a personal point of view, I hate
  73.     having the old "Christian" aligned mythos, but if that's what you
  74.     like, you can replicate it with this code too (see below).
  75.  
  76.  
  77.         a. Gods[] array. 
  78.         ----------------
  79.  
  80.     This array is found in include/gods.h. The structure for the array is:
  81.  
  82. typedef struct god_struct {
  83.   char *name;              /* how to describe the god to the player */
  84.   char *enemy;             /* Name of the opposing god */
  85.   unsigned int attacktype  /* Favored attack of the god, usually AT_FEAR */
  86.   unsigned int immune;     /* Attacks which the god's priest may be immune */
  87.   unsigned int protected;  /* Attacks which do half damage to the priest */
  88.   unsigned int vulnerable  /* Attacks which do double damage to the priest */
  89.   uint32 path_attuned;     /* Paths the god's priest is attuned to */
  90.   uint32 path_repelled;    /* Paths the god's priest is repelled from */
  91.   uint32 path_denied;      /* Paths the gods's priest is denied access to */
  92.   char *aligned_race;      /* name of the race of creatures aligned w/ the god */
  93.   char *enemy_race;        /* name of the race of "enemy" creatures */
  94. } god;
  95.  
  96.  
  97.         Here is a fuller description of Gods[] array values. If a value is not 
  98.     required to be specified in the array, it is noted below.
  99.  
  100.      name         - name of the god  (required)
  101.      enemy        - diametrically opposed god, use "none" if none exists
  102.                           (required)
  103.      attacktype   - favored attack of this god, used in spells of summon
  104.                         avatar, holy word. Recipients of "holy possession" get 
  105.              too.  (required)
  106.      immune       - Recipient of "holy possession" gets this.
  107.      protected    - Priest of this god gets this.
  108.      vulnerable   - Priest of this god and recipient of "curse" spell gets 
  109.             this.
  110.      path_attuned - priest of this god and recipient of "bless" gets this
  111.      path_repelled - priest and recipient of "curse" gets this
  112.      path_denied  - priest and recipient of "curse" gets this
  113.      aligned_race - comma delimited list of the races of creatures that are 
  114.             aligned with the god. "summon cult monsters" uses. 
  115.             Value must be "none" if no race exists. (required)
  116.      enemy_race   - comma delimited list of the races of creatures "holy word",
  117.             "holy possession" spells will effect. Value entry must be 
  118.             "none" if no such race(s) exists.  (required)
  119.  
  120.  
  121.     Here are 2 entries from the default Gods array. I will use 2 "gods"
  122.     that everyone is probably familiar with: the Christian "God" and "Satan":
  123.  
  124.     /* the Christian god */
  125.     {"God",         "Satan",  AT_FEAR|AT_WEAPONMAGIC, 66688, 66688,    0,
  126.                 PATH_RESTORE|PATH_TURNING, PATH_NULL, PATH_WOUNDING,    
  127.         "angel", "undead,skeleton,demon"},
  128.  
  129.     /* the Christian "devil" */
  130.     {"Satan",       "God",    AT_ACID|AT_FIRE|AT_DRAIN,   132,   132,  131072,
  131.                 PATH_WOUNDING,          PATH_TURNING, PATH_RESTORE,     "
  132.          "undead,skeleton,demon", "angel"}, 
  133.  
  134.  
  135.     Note some of the big differences here in terms of spell_paths, races, etc.
  136.     These entries were designed to be roughly polar opposite gods.
  137.  
  138.     For designing new gods. You should make sure that worshiping a god will
  139.     be "useful" in some way. Either give the god a favorable attack (I
  140.     suggest most "powerfull" gods have AT_WEAPONMAGIC so thier avatars are 
  141.     strong) and one or two immunities too. Don't forget play-balance 
  142.     however! Almost all gods would have a vulnerability for every immunity. 
  143.  
  144.  
  145.         b. New spells.
  146.         --------------
  147.  
  148.     The following table lists new (and revamped) spells w/ short description 
  149.     of each:
  150.  
  151.  
  152.     Spell (level, grace)           Description
  153.     -------------------        ----------------------
  154.  
  155.     Summon avatar (10,60)        Summons a "golem" that is tailored to 
  156.                     the powers of the worshiped god. This 
  157.                     spell is more powerfull (in general) 
  158.                     than a summoned elemental and is one
  159.                     of the priest's most potent attack
  160.                     spells. 
  161.  
  162.     Summon cult monsters (3,10)    Summons creatures that have race flag
  163.                     set to the same value as the priest's
  164.                     God[].aligned_race. Depending on listed
  165.                     creatures can be powerfull/wimpy spell. 
  166.  
  167.     bless (2,8)            Enhances the recipients combat ability
  168.                     and confers some of the gods protection. 
  169.  
  170.     curse (2,8)            Decreases the recipients combat ability
  171.                     and confers some vulnerabilities of the
  172.                     god too.
  173.  
  174.     consecrate (4,35)        Makes an altar aligned with the casters
  175.                     god.
  176.  
  177.     regeneration (7,15)        Recipient regenerates damage faster
  178.                     (temporarily)
  179.  
  180.     cause critical wounds (7,25)    like previous cause wounds spells, but 
  181.                     more potent. Lesser spells now have 
  182.                     decreased grace cost to make them 
  183.                     more useful.
  184.  
  185.     holy word (1,4)            Revamped this spell so that only 
  186.                     creatures with race Gods[].enemy_race
  187.                     are effected. Now, holy word may effect
  188.                     more than just undead!
  189.         
  190.     holy orb (8,10)            Revamped this spell so that only 
  191.                     creatures with race Gods[].enemy_race
  192.                     are effected. Also, made it more potent.
  193.  
  194.     insect plague (9, 45)        Sends small poisonous insects crawling
  195.                     over a hapless target.
  196.  
  197.     holy wrath (13, 40)         Most deathly of the "holy word" spells. 
  198.  
  199.     staff to snake (2, 8)        Makes the clerics quarterstaff into a snake
  200.                     that they may control and smite heathen 
  201.                     with.
  202.  
  203.     call holy servant(6,30)        Summons a servant of the priest's god
  204.                      
  205.     wall of thorns (5, 25)        As suggests, creates a wall of thorns
  206.  
  207.  
  208.         c.Altars and praying skill
  209.         --------------------------
  210.  
  211.     When a player prays over an altar, one of 3 things may happen based
  212.     on the players currently worshiped god:
  213.  
  214.     (1) "unaligned" player prays over an altar -- results in that player
  215.     becoming a worshiper of the god the altar is dedicated to.
  216.  
  217.     (2) player prays over their god's altar -- results in faster grace
  218.     regeneration. In addition, player may pray to gain up to 2x their
  219.     normal amount of grace ("maxgrace"). Once in a great while, a 
  220.     faithful worshiper praying at their god's altar may receive 
  221.     additional help. 
  222.  
  223.     (3) player prays over alien god's altar -- results in punishment
  224.     of the player (generally they lose clerical xp) and *may* result in
  225.     defection of the player to the god who the altar is dedicated to.
  226.  
  227.     Code may be found in the file server/gods.c and common/map.c. Map-makers
  228.     wishing to "dedicate" an altar in a particular map for a particular
  229.     god may do so by setting the name of the altar to "altar of <godname>"
  230.     and the value of altar->title to <godname>. Once this is done, the 
  231.     code 'baptize_altar' will skip over the dedicated altar when the map
  232.     is loaded.
  233.  
  234.  
  235.     ----------------
  236.     Todo/Ideas list- 
  237.     ----------------
  238.  
  239.  
  240.     Heh, what more could be done? :) Well....
  241.  
  242.     -- better handling of defecting clerics. Right now they just lose
  243.     xp, why not summon a few monsters for retribution too? (base summoned
  244.     critters on clerical level or map difficulty) A loss of Wis stat
  245.     when the player is successful in defecting may be appropriate too. 
  246.     (high level players only)
  247.  
  248.     -- More spells for clerics. Either dealing wi/ Gods (as summon cult
  249.     monsters) or as stand-alone spells (like cause wounds spells). 
  250.  
  251.     -- Allow sacrifices. This is an excellent way to give a cleric xp.
  252.     Need to create enemy_race creatures w/ bodyparts we can sacrifice,
  253.     and designate a pointer in Gods{} to the appropriate array of stuff
  254.     we can sacrifice for xp.
  255.  
  256.     -- Archetype "bible". This randomly occuring arch would be a read_book 
  257.     that describes a randomly selected god's attributes to the reader.
  258.     Not everyone will be familiar with the gods created by the server
  259.     maintainer, so we need to allow a facility to let players know a god's
  260.     attributes. 
  261.  
  262.  
  263.